package cn.web.tunnelrobot.dao;

import cn.web.tunnelrobot.dto.ProjectDTO;
import cn.web.tunnelrobot.dto.ProjectDTO1;
import cn.web.tunnelrobot.dto.ProjectDTO3;
import cn.web.tunnelrobot.pojo.Project;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface ProjectDao {
    //添加项目信息
    int addProject(Project project);
    //通过单位信息id、项目名称查询项目信息
    Project getProjectByName(@Param("uiId") Integer uiId,@Param("prName") String prName);
    //通过项目id查询项目信息
    Project getProjectById(@Param("prId")Integer prId);
    //修改项目信息
    int updateProject(Project project);
    //查询项目列表
    List<Project> getProjectList(@Param("uiId") Integer uiId);
    //通过项目id删除项目信息
    int deleteProjectByPrId(@Param("prId")Integer prId);
    //分页查询项目信息
    List<ProjectDTO> getProjectListPage(@Param("id") Integer id, @Param("companyName") String companyName, @Param("branchName") String branchName, @Param("projectName") String projectName,
                                        @Param("usName") String usName, @Param("pageNo") Integer pageNo, @Param("pageSize") Integer pageSize);
    //查询项目信息类别数量
    int getProjectCountPage(@Param("id") Integer id, @Param("companyName") String companyName, @Param("branchName") String branchName, @Param("projectName") String projectName,@Param("usName") String usName);
    //通过分局id查询项目信息
    List<ProjectDTO1> getProjectListReturnProjectDTO1(@Param("uiId")Integer uiId);
    //通过分局id获取项目列表信息（分页）
    List<ProjectDTO> getProjectListPageByUiId(@Param("id")Integer id, @Param("pageNo")Integer pageNo, @Param("pageSize") Integer pageSize);
    //通过分局id获取项目列表信息总数（分页）
    int getProjectCountPageByUiId(@Param("id")Integer id);

    ProjectDTO getDetailProjectById(@Param("prId")Integer prId);
    //获取隧道长度
    ProjectDTO getWorkAreaTunnelByUsId(@Param("usId")Integer usId);

    //查询用户id负责的分局（一个用户负责一个标段-工区）
    Project getProjectByUsId(@Param("usId")Integer usId);
    //获取项目
    Project getProject();

    ProjectDTO3 getProjectProgressById(Integer prId);
    int updateProjectProgress(Project project);
}
